/**
*可重用的按钮,每次能根据一个新的函数吧事件调度到新函数里而且会删除掉老的事件处理函数
*注意他接受的类型是InteractiveObject啊，是个比较宽的接口
*
*Fresh EventDispatcher
*新鲜的事件发生器，每次refresh()刷新之后都只保存最新的事件和消息，会把老的干掉
*/

package kgame5.kutil.ktaskpipe {
import flash.events.*;

public class RefreshEventDispatcher  {
	

	//___________________Property____________________
	private var dispatcher:EventDispatcher;
	private var eventType:String;
	private var funcExe:Function;
	//___________________Method_____________________
	public function RefreshEventDispatcher(p_dispatcher:EventDispatcher){
		dispatcher=p_dispatcher;
	}
	//删除掉老的事件处理函数，并生成新的事件处理函数
	public function refresh(p_funcExe:Function,p_eventType:String="mouseDown") {
		clear();
		
		funcExe=p_funcExe;
		eventType=p_eventType;
		
		dispatcher.addEventListener(eventType, funcExe);
	}
	public function clear(){
		if(funcExe!=null){
			dispatcher.removeEventListener(eventType, funcExe);
		}
	}
} //end of class
}